アソシアトロン Ver1.0

ニューロン(神経細胞)とシナプス(神経繊維)結合をシミュレートした、連想記憶システムのモデルです。
簡単なパターンを記憶させて、不完全なパターンからそれを連想させることが出来ます。
このアプレットはMSXマガジン1992年1月号の記事を元に作成したので、元になっているアソシアトロンとは異なる可能性があります。


動作機種

OS2.0以上。日本語環境は特に必要ありません。
ヒープを最小3KB、最大35KB消費します。ヒープの消費量は盤面の大きさに比例します。
学習結果を初期設定として保存するためヒープと同量の内蔵メモリを消費します。

使い方

操作方法

スクリーンショット:全体 アプレットを開くと枠の中に5x5の点が表示されます。点ひとつひとつがニューロンです。各ニューロンはシナプスによって結合していますが、それは見えません。5x5の盤面の場合、ニューロンは25個、シナプスは25*25で625個あります。
ニューロンには負、零、正の3つの状態があります、タップすると黒い四角(正)→白い四角(負)→点(零)という順に状態が変化しますので、記憶または連想させるパターンを作成します。

Clearボタンを押すと描いたパターンをすべて点にします。
Learnボタンを押すと描いたパターンを記憶させます。
Asoociateボタンを押すと描いたパターンを元にパターンを連想します。

スクリーンショット:Prefsパネル iボタンのprefsでパターン盤面の大きさを5x5から10x10まで変更できます。盤面を大きくするとそれだけ多くのヒープを消費しますので注意してください。大きさを変更すると、今まで学習したものは忘れてしまいます。
Remove Prefarenceボタンでアプレットの初期設定を消去することが出来ます。なにぶんメモリ喰いなので、アプレットを削除する前にはこれを使用することを御勧めします。

学習させすぎてわけがわからなくなったときは、iボタンのForgetできれいさっぱり忘れることが出来ます

簡単な例

まず、黒い四角を使って四角形を描きます。
描いたら、Learnボタンを押して記憶させてください。
そして描いた四角形を、さっきとはちょっと違う不完全なパターンに描き変えてください。
Asoociateボタンで連想させると、不完全なパターンから先程の四角形を連想するはずです。何も描かなかったり、全然違うパターンを描くと連想できなくなります。

スクリーンショット:例:連想させる図形 →連想→ スクリーンショット:例:連想させた図形

アソシアトロンはそれぞれのニューロンがシナプスによって結合されていて、その結合度合を記憶しています。例えば1つのシナプスで結合されている2つのニューロンがあるとして、両方が正の入力を受けたとするとシナプスは正の結合が強化され、両方が負の場合は負の結合が強化されます。片方が正、片方が負の場合は結合が弱まります。
連想するときには入力されたパターンはシナプスの結合度合によって影響を受けて出力されます。これによって多少欠落したり誤ったパターンからも正しいパターンを連想することが出来るのです。

応用例

アソシアトロンの特性を利用すれば連想記憶システムとして使用できます。
例えば5x5の盤面の上2列を色、次の2列を形、一番下の列をくだものの名前を表すことにして、下の4つのくだものを記憶させます。

記憶例:リンゴ 記憶例:メロン 記憶例:キュウリ 記憶例:バナナ

そして、赤くて丸いものを連想させると――ちゃんとリンゴという答えが出てきます。その逆もしっかりと記憶させれば答えられます。

赤くて丸いものは? →連想→ リンゴ

アソシアトロンはどんなに記憶させてもメモリが足らないとかで記憶させられなくなることはなありません。ただし以前に記憶させたものは忘れていってしまいますが。5x5の盤面では4つ以上のことを記憶させると記憶が曖昧になってしまうようです。盤面を大きくすればそれだけ覚えられることが増えてより複雑な記憶が出来るようになります。

参考文献

MSXマガジン1992年1月号 鹿野司の人工知能うんちく話
『BASICで作る脳の情報システム』知能システム研究会著 啓学出版刊

プログラムの配布について

このソフトはカンパウェアです。私にこれからも頑張って欲しいなーと思う人はニフティサーブのアクセスギフトをCQN01610まで送ってください。
送っていただけると作者が喜ぶだけで見返りは期待できません。また、送ってくれなくても作者ががっくりくるだけで何もおこりません。
なお、再配布、転載を許可します。

改版履歴

1999/03/14 Ver1.0	リリース1

[logo]りゅう/rryu@t3.rim.or.jp